object Versions {
    const val koin = "2.2.2"
    const val mmkv = "1.2.7"
    const val arouter = "1.5.1"
    const val biometric = "1.0.1"
    const val android_gradle_plugin = "3.5.3"
    const val kotlin = "1.3.72"
    const val appStartup = "1.0.0-alpha01"
    const val annotations = "1.1.0"
    const val appcompat = "1.1.0"
    const val recyclerview = "1.1.0"
    const val cardview = "1.0.0"
    const val design = "29.0.2"
    const val v4 = "1.0.0"
    const val coil = "1.1.1"
    const val constraint_layout = "1.1.3"
    const val corektx = "1.3.0"
    const val coroutinesktx = "1.3.0"
    const val banner = "1.4.10"
    const val glide = "4.11.0"
    const val transformations = "4.0.0"
    const val refresh = "1.1.0-andx-8"
    const val recyclerview_adapter = "2.9.46"
    const val recyclerview_decoration = "1.3.2-androidx"
    const val flex = "1.1.1"
    const val multitype = "4.0.0-alpha3"
    val hilt = "2.31-alpha"
    val hiltViewModule = "1.0.0-alpha02"
    const val navigation = "2.1.0"
    const val room = "2.2.0"
    const val lifecycle = "2.2.0-beta01"
    const val paging = "3.0.0-alpha02"

    const val retrofit = "2.9.0"
    const val okhttp = "4.9.0"
    const val okio = "2.4.1"
    const val moshi = "1.11.0"

    const val rxjava = "2.2.7"
    const val rxandroid = "2.1.1"
    const val rxkotlin = "2.3.0"
    const val rxpermissions = "0.10.2"

    const val luban = "1.1.8"
    const val statu_util = "1.4.3"

    const val logger = "2.2.0"
    const val chucker = "3.4.0"
    const val leakcanary = "2.0-beta-3"
    const val junit = "4.12"
    const val atsl_rules = "1.1.0-alpha4"
    const val atsl_runner = "1.3.0-alpha02"
    const val espresso = "3.3.0-alpha02"
    const val jsbridge = "1.0.4"
    const val autosize = "1.2.1"
    const val background = "1.6.5"
}

//object Support {
//    const val annotations = "androidx.annotation:annotation:${Versions.annotations}"
//    const val recyclerview = "androidx.recyclerview:recyclerview:${Versions.recyclerview}"
//    const val cardview = "androidx.cardview:cardview:${Versions.cardview}"
//    const val design = "com.android.support:design:${Versions.design}"
//    const val v4 = "androidx.legacy:legacy-support-v4:${Versions.v4}"
//}

object AndroidX {
    const val appcompat = "androidx.appcompat:appcompat:${Versions.appcompat}"
    const val corektx = "androidx.core:core-ktx:${Versions.corektx}"
    const val activity = "androidx.activity:activity-ktx:1.2.0-alpha08"
    const val fragment = "androidx.fragment:fragment-ktx:1.3.0-alpha08"
    const val appStartup = "androidx.startup:startup-runtime:${Versions.appStartup}"
}

object Material {
    const val material = "com.google.android.material:material:1.3.0-alpha02"
}

object Navigation {
    const val fragment = "androidx.navigation:navigation-fragment-ktx:${Versions.navigation}"
    const val ui = "androidx.navigation:navigation-ui-ktx:${Versions.navigation}"
}

object Room {
    const val runtime = "androidx.room:room-runtime:${Versions.room}"
    const val compiler = "androidx.room:room-compiler:${Versions.room}"
    const val rxjava2 = "androidx.room:room-rxjava2:${Versions.room}"
    const val testing = "androidx.room:room-testing:${Versions.room}"
}

object Lifecycle {
    const val runtime = "androidx.lifecycle:lifecycle-runtime:${Versions.lifecycle}"
    const val viewmodel = "androidx.lifecycle:lifecycle-viewmodel-ktx:${Versions.lifecycle}"
    const val extensions = "androidx.lifecycle:lifecycle-extensions:${Versions.lifecycle}"
    const val java8 = "androidx.lifecycle:lifecycle-common-java8:${Versions.lifecycle}"
    const val compiler = "androidx.lifecycle:lifecycle-compiler:${Versions.lifecycle}"
}

object Paging {
    const val runtime = "androidx.paging:paging-runtime-ktx:${Versions.paging}"
    const val rxjava2 = "androidx.paging:paging-rxjava2:${Versions.paging}"
}

object Kotlin {
    //    const val stdlib = "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${Versions.kotlin}"
    const val stdlib = "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${Versions.kotlin}"
    const val test = "org.jetbrains.kotlin:kotlin-test-junit:${Versions.kotlin}"
    const val plugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:${Versions.kotlin}"
    const val allopen = "org.jetbrains.kotlin:kotlin-allopen:${Versions.kotlin}"
}

object Retrofit {
    const val runtime = "com.squareup.retrofit2:retrofit:${Versions.retrofit}"
    const val gson = "com.squareup.retrofit2:converter-gson:${Versions.retrofit}"
    const val moshi = "com.squareup.retrofit2:converter-moshi:${Versions.retrofit}"
    const val coroutines = "com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2"

    const val adapter = "com.squareup.retrofit2:adapter-rxjava2:${Versions.retrofit}"
    const val mock = "com.squareup.retrofit2:retrofit-mock:${Versions.retrofit}"
}

object Chucker {
    const val debug = "com.github.chuckerteam.chucker:library:${Versions.chucker}"
    const val release = "com.github.chuckerteam.chucker:library-no-op:${Versions.chucker}"
}

object OkHttp {

    const val runtime = "com.squareup.okhttp3:okhttp:${Versions.okhttp}"
    const val io = "com.squareup.okio:okio:${Versions.okio}"
    const val logging = "com.squareup.okhttp3:logging-interceptor:${Versions.okhttp}"
}

//object Rx {
//    const val java = "io.reactivex.rxjava2:rxjava:${Versions.rxjava}"
//    const val android = "io.reactivex.rxjava2:rxandroid:${Versions.rxandroid}"
//    const val kotlin = "io.reactivex.rxjava2:rxkotlin:${Versions.rxkotlin}"
//    const val permissions = "com.github.tbruyelle:rxpermissions:${Versions.rxpermissions}"
//}

object Glide {
    const val runtime = "com.github.bumptech.glide:glide:${Versions.glide}"
    const val compiler = "com.github.bumptech.glide:compiler:${Versions.glide}"
    const val transformations = "jp.wasabeef:glide-transformations:${Versions.transformations}"
}

//object Refresh {
//    const val layout = "com.scwang.smartrefresh:SmartRefreshLayout:${Versions.refresh}"
//    const val header = "com.scwang.smartrefresh:SmartRefreshHeader:${Versions.refresh}"
//}

//object Atsl {
//
//    const val runner = "androidx.test:runner:${Versions.atsl_runner}"
//    const val rules = "androidx.test:rules:${Versions.atsl_rules}"
//}

object Espresso {
    const val core = "androidx.test.espresso:espresso-core:${Versions.espresso}"
    const val contrib = "androidx.test.espresso:espresso-contrib:${Versions.espresso}"
    const val intents = "androidx.test.espresso:espresso-intents:${Versions.espresso}"
}

object Coil {
    const val runtime = "io.coil-kt:coil:${Versions.coil}"
}

object MMKV {
    const val runtime = "com.tencent:mmkv-static:${Versions.mmkv}"
}

object Moshi {
    const val runtime = "com.squareup.moshi:moshi:${Versions.moshi}"
    const val runtimeKt = "com.squareup.moshi:moshi-kotlin:${Versions.moshi}"
    const val codegen = "com.squareup.moshi:moshi-kotlin-codegen:${Versions.moshi}"
}

object Koin {
    const val runTime = "org.koin:koin-android:${Versions.koin}"
    const val viewModel = "org.koin:koin-androidx-viewmodel:${Versions.koin}"
    const val ext = "org.koin:koin-androidx-ext:${Versions.koin}"
}

object Hilt {
    val daggerRuntime = "com.google.dagger:hilt-android:${Versions.hilt}"
    val common = "androidx.hilt:hilt-common:${Versions.hiltViewModule}"
    val daggerCompiler = "com.google.dagger:hilt-android-compiler:${Versions.hilt}"
    val viewModule = "androidx.hilt:hilt-lifecycle-viewmodel:${Versions.hiltViewModule}"
    val compiler = "androidx.hilt:hilt-compiler:${Versions.hiltViewModule}"
}

object DataStore {
    const val runtime = "androidx.datastore:datastore-preferences:1.0.0-alpha04"
}

object ARouter {
    const val runtime = "com.alibaba:arouter-api:${Versions.arouter}"
    const val kapt = "com.alibaba:arouter-compiler:${Versions.arouter}"
}

object Depend {
    const val androidGradlePlugin =
        "com.android.tools.build:gradle:${Versions.android_gradle_plugin}"
    const val constraint =
        "androidx.constraintlayout:constraintlayout:${Versions.constraint_layout}"
    const val coroutinesktx =
        "org.jetbrains.kotlinx:kotlinx-coroutines-android:${Versions.coroutinesktx}"

    const val banner = "com.youth.banner:banner:${Versions.banner}"
    const val recyclerviewAdapter =
        "com.github.CymChad:BaseRecyclerViewAdapterHelper:${Versions.recyclerview_adapter}"
    const val multitype = "me.drakeet.multitype:multitype:${Versions.multitype}"
    const val recyclerviewDecoration =
        "com.oushangfeng:PinnedSectionItemDecoration:${Versions.recyclerview_decoration}"
    const val flex = "com.google.android:flexbox:${Versions.flex}"
    const val luban = "top.zibin:Luban:${Versions.luban}"
    const val statuUtil = "cn.yc:YCStatusBarLib:${Versions.statu_util}"
    const val jsbridge = "com.github.lzyzsd:jsbridge:${Versions.jsbridge}"
    const val autoSize = "me.jessyan:autosize:${Versions.autosize}"
    const val background = "com.noober.background:core:${Versions.background}"
    const val biometric = "androidx.biometric:biometric:${Versions.biometric}"

    // development
    const val logger = "com.orhanobut:logger:${Versions.logger}"
    const val leakCanary = "com.squareup.leakcanary:leakcanary-android:${Versions.leakcanary}"

    const val junit = "junit:junit:${Versions.junit}"

}